<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width:100px;
            height: 50px;
            background: skyblue;
            margin: 10px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div>0</div>
    <div>1</div>
    <div>2</div>

    <script>

        var aDiv = document.getElementsByTagName('div');


        for(var i=0;i<aDiv.length;i++){

            aDiv[i].timer = null;
            aDiv[i].onmouseover = function () {
               startMove(this,500)
           };
            aDiv[i].onmouseout = function () {
               startMove(this,100)
           }

        }

        function startMove(obj,iTarget) {
            clearInterval(obj.timer);
            obj.timer = setInterval(function () {
               var speed = (iTarget-obj.offsetWidth)/6;
               speed = speed>0?Math.ceil(speed):Math.floor(speed);

               if (iTarget == obj.style.width){
                   clearInterval(timer);
               }
               else {
                   obj.style.width = obj.offsetWidth+speed+'px';
               }

            },30)
        }

    </script>
</body>
</html>